package com.sf.dlb.utils;

import java.text.DecimalFormat;

/**
 * 字符串格式化工具类
 * Created by tanjing on 2018/12/28.
 */
public class StringFormatUtils {

    /**
     * 保留3位小数
     * @param number
     * @return
     */
    public static String kill3Decimals(Double number){
        if(null==number||number==0){
            return "0";
        }
        DecimalFormat df = new DecimalFormat("#0.000");
        String str = df.format(number);
        return str;
    }
    /**
     * 保留x位小数
     * @param number
     * @return
     */
    public static String killManyDecimals(Double number,int keep){
        if(null==number||number==0){
            return "0";
        }
        if(keep==0){//默认一位保留1位
            keep=0;
        }
        StringBuffer sb=new StringBuffer("#0.");
        for (int i=0;i<keep;i++) {
            sb.append("0");
        }
        DecimalFormat df = new DecimalFormat(sb.toString());
        String str = df.format(number);
        return str;
    }
    /**
     * 设置登入密码时，要求是：8-20位，字母、数字、符号的任意两者组合。
     * @param password
     * @return
     */
    public static boolean passwordValidity(String password){
        String regStr1="^(\\d)+$"; //数字
        String regStr2="^[a-zA-z]+$";//字母
        String regStr3="^([!@#$%^&*]+)$";//字符
        String regStr4="^([A-Z]|[a-z]|[0-9]|[!@#$%^&*]){8,20}$";//只要是数字，字母，字符，8-20位即可
        boolean regFlag1=password.matches(regStr1);
        boolean regFlag2=password.matches(regStr2);
        boolean regFlag3=password.matches(regStr3);
        boolean regFlag4=password.matches(regStr4);
        if(!regFlag1&&!regFlag2&&!regFlag3){//不能全是数字，字母，字符
            if(regFlag4){ //只要是数字，字母，字符，8-20位即可
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        Double d=0.0011111111111;
        String str=killManyDecimals(d,6);
        System.out.println(" StringFormatUtils === "+str);
//        boolean falg=passwordValidity("admin001");
//        System.out.println(" passwordValidity === "+falg);
    }
}
